package com.iccaplayer.arduins;

public class ArduInsDevice{
	private boolean State;
	private byte[] note = new byte[9];
	private int Preference;
	private String Manufacturer;
	private String Model;
	private String Version;
	private String Description;
	private int connPos;
	
	public static final String[] MIDI_INSTRUMENT = new String[] {
		"Acoustic Grand Piano", "Bright Acoustic Piano",
		"Electric Grand Piano", "Honky-tonk Piano", "Electric Piano 1",
		"Electric Piano 2", "Harpsichord", "Clavinet", "Celesta",
		"Glockenspiel", "Music Box", "Vibraphone", "Marimba", "Xylophone",
		"Tubular Bells", "Dulcimer", "Drawbar Organ", "Percussive Organ",
		"Rock Organ", "Church Organ", "Reed Organ", "Accordion",
		"Harmonica", "Tango Accordion", "Acoustic Guitar (nylon)",
		"Acoustic Guitar (steel)", "Electric Guitar (jazz)",
		"Electric Guitar (clean)", "Electric Guitar (muted)",
		"Overdriven Guitar", "Distortion Guitar", "Guitar harmonics",
		"Acoustic Bass", "Electric Bass (finger)", "Electric Bass (pick)",
		"Fretless Bass", "Slap Bass 1", "Slap Bass 2", "Synth Bass 1",
		"Synth Bass 2", "Violin", "Viola", "Cello", "Contrabass",
		"Tremolo Strings", "Pizzicato Strings", "Orchestral Harp",
		"Timpani", "String Ensemble 1", "String Ensemble 2",
		"Synth Strings 1", "Synth Strings 2", "Choir Aahs", "Voice Oohs",
		"Synth Choir", "Orchestra Hit", "Trumpet", "Trombone", "Tuba",
		"Muted Trumpet", "French Horn", "Brass Section", "Synth Brass 1",
		"Synth Brass 2", "Soprano Sax", "Alto Sax", "Tenor Sax",
		"Baritone Sax", "Oboe", "English Horn", "Bassoon", "Clarinet",
		"Piccolo", "Flute", "Recorder", "Pan Flute", "Blown Bottle",
		"Shakuhachi", "Whistle", "Ocarina", "Lead 1 (square)",
		"Lead 2 (sawtooth)", "Lead 3 (calliope)", "Lead 4 (chiff)",
		"Lead 5 (charang)", "Lead 6 (voice)", "Lead 7 (fifths)",
		"Lead 8 (bass + lead)", "Pad 1 (new age)", "Pad 2 (warm)",
		"Pad 3 (polysynth)", "Pad 4 (choir)", "Pad 5 (bowed)",
		"Pad 6 (metallic)", "Pad 7 (halo)", "Pad 8 (sweep)", "FX 1 (rain)",
		"FX 2 (soundtrack)", "FX 3 (crystal)", "FX 4 (atmosphere)",
		"FX 5 (brightness)", "FX 6 (goblins)", "FX 7 (echoes)",
		"FX 8 (sci-fi)", "Sitar", "Banjo", "Shamisen", "Koto", "Kalimba",
		"Bag pipe", "Fiddle", "Shanai", "Tinkle Bell", "Agogo",
		"Steel Drums", "Woodblock", "Taiko Drum", "Melodic Tom",
		"Synth Drum", "Reverse Cymbal", "Guitar Fret Noise",
		"Breath Noise", "Seashore", "Bird Tweet", "Telephone Ring",
		"Helicopter", "Applause", "Gunshot", "Drum Kits"};

	public ArduInsDevice() {
		// TODO Auto-generated constructor stub
		State = false;
	}

	public void connect(){
		State = true;
	}

	public void disconnect(){
		State = false;
	}

	public void updateNote(byte[] n){
		for(int i=0;i<9;i++){
			note[i] = n[i];
		}
	}

	public void loadNote(byte[] n){
		for(int i=0;i<9;i++){
			n[i] = note[i];
		}
	}

	public void setPreference(int i){
		Preference = i;
	}

	public void setManufacturer(String s){
		Manufacturer = s;
	}

	public void setModel(String s){
		Model = s;
	}

	public void setVersion(String s){
		Version = s;
	}

	public void setDescription(String s){
		Description = s;
	}

	public boolean isConnected(){
		return State;
	}

	public int getPreference(){
		return Preference;
	}
	
	public String getPreferenceString(){
		return MIDI_INSTRUMENT[Preference];
	}

	public String getManufacturer(){
		return Manufacturer;
	}

	public String getModel(){
		return Model;
	}

	public String getVersion(){
		return Version;
	}

	public String getDescription(){
		return Description;
	}
	
	public void setConnInsPos(int num){
		connPos = num;
	}
	
	public int getConnInsPos(){
		return connPos; 
	}
}
